package com.example.base.security.service;



import com.baomidou.mybatisplus.extension.service.IService;
import com.example.base.excetion.GlobalExcetion;
import com.example.base.security.domain.SysDept;
import com.example.base.security.domain.vo.SysDeptVo;

import java.io.Serializable;
import java.util.List;


/**
 * <p>
 * 部门表 服务类
 * </p>
 *
 * @author xiong
 * @since 2024-02-05
 */
public interface SysDeptService extends IService<SysDept> {

    public SysDept saveOrUpdateSysDept(SysDeptVo sysDeptVo) throws GlobalExcetion;

    public SysDept updateSysDeptById(SysDept sysdept);

    public SysDept getSysDeptByDeptNo(String deptNo);

    /**
     * 获取所有部门tree列表
     * @return
     */
    public List<SysDept> treeList();


    /**
     * 根据id过滤部门tree数据
     * @param id
     * @return
     */
    public List<SysDept> treeListById(Serializable id);

    /**
     * 查出所有关联的子id(包含父id)
     * @param id
     * @return
     */
    public List<SysDept> childsById(Serializable id);

    /**
     * 查出所有关联的子id(不包含父id)
     * @param id
     * @return
     */
    public List<SysDept> childsFilterChildById(Serializable id);


}
